{# Defines macros for reusable templates. #}
{% macro method(method) -%}
  {% include 'method.template.html' %}
{% endmacro %}

{% macro property(property) -%}
  {% include 'property.template.html' %}
{% endmacro %}

{% macro methodList(methodList) -%}
  {% include 'method-list.template.html' %}
{% endmacro %}

{% macro propertyList(propertyList) -%}
  {% include 'property-list.template.html' %}
{% endmacro %}

{% macro class(class) -%}
  {% include 'class.template.html' %}
{% endmacro %}

{% macro interface(interface) -%}
  {% include 'interface.template.html' %}
{% endmacro %}

<div class="docs-api">
  <h2>
    API reference for Angular {$ doc.packageDisplayName $} {$ doc.displayName $}
  </h2>

  <p class="docs-api-module-import">
    <code>
      import {{$ doc.ngModule.name $}} from '{$ doc.moduleImportPath $}';
    </code>
  </p>

  {%- if doc.services.length -%}
    <h3 id="services" class="docs-header-link docs-api-h3">
      <span header-link="services"></span>
      Services
    </h3>
    {% for service in doc.services %}
      {$ class(service) $}
    {% endfor %}
  {%- endif -%}


  {%- if doc.directives.length -%}
    <h3 id="directives" class="docs-header-link docs-api-h3">
      <span header-link="directives"></span>
      Directives
    </h3>
    {% for directive in doc.directives %}
      {$ class(directive) $}
    {% endfor %}
  {%- endif -%}

  {%- if doc.additionalClasses.length -%}
    <h3 id="additional_classes" class="docs-header-link docs-api-h3">
      <span header-link="additional_classes"></span>
      Additional classes
    </h3>
    {% for other in doc.additionalClasses %}
      {$ class(other) $}
    {% endfor %}
  {%- endif -%}

  {%- if doc.additionalInterfaces.length -%}
    <h3 id="additional_interfaces" class="docs-header-link docs-api-h3">
      <span header-link="additional_interfaces"></span>
      Additional interfaces
    </h3>
    {% for item in doc.additionalInterfaces %}
      {$ interface(item) $}
    {% endfor %}
  {%- endif -%}
</div>
